## Makefile for the po subdirectory of the GNU C++ Standard library.
##
## Copyright (C) 2001-2025 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.

## This file is part of the GNU ISO C++ Library.  This library is free
## software; you can redistribute it and/or modify it under the
## terms of the GNU General Public License as published by the
## Free Software Foundation; either version 3, or (at your option)
## any later version.

## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License along
## with this library; see the file COPYING3.  If not see
## <http://www.gnu.org/licenses/>.

include $(top_srcdir)/fragment.am

# Location of installation directories.
locale_installdir = $(DESTDIR)$(datadir)/locale
locale_builddir = $(glibcxx_localedir)

# Tell automake that foo.po makes foo.mo
SUFFIXES = .po .mo

LOCALE_IN = $(glibcxx_POFILES)
LOCALE_OUT = $(glibcxx_MOFILES)

MSGFMT = msgfmt

# Necessary files.
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)

.po.mo:
	$(MSGFMT) -o $@ $<

all-local: all-local-$(USE_NLS)
all-local-no:
all-local-yes: $(LOCALE_OUT)

# 'make check' needs the catalogs constructed in build directory.
check: check-$(USE_NLS)
check-no:
check-yes:
	$(mkinstalldirs) $(locale_builddir)
	catalogs='$(LOCALE_OUT)'; \
	for cat in $$catalogs; do \
	  cat=`basename $$cat`; \
	  lang=`echo $$cat | sed 's/\.mo$$//'`; \
	  install_dir=$(locale_builddir)/$$lang/LC_MESSAGES; \
	  $(mkinstalldirs) $$install_dir; \
	  $(INSTALL_DATA) $$cat $$install_dir/$(PACKAGE).mo; \
	done

# Install rules here.
# Wish install could just `cp -R ./share $(locale_installdir)` ...
install-data-local: install-data-local-$(USE_NLS)
install-data-local-no:
install-data-local-yes: all-local-yes
	$(mkinstalldirs) $(locale_installdir)
	catalogs='$(LOCALE_OUT)'; \
	for cat in $$catalogs; do \
	  cat=`basename $$cat`; \
	  lang=`echo $$cat | sed 's/\.mo$$//'`; \
	  install_dir=$(locale_installdir)/$$lang/LC_MESSAGES; \
	  $(mkinstalldirs) $$install_dir; \
	  $(INSTALL_DATA) $$cat $$install_dir/$(PACKAGE).mo; \
	done

# Maintainence of the .po template file.  This rule is never run automatically,
# and updates the source directory.
pot:
	cd $(glibcxx_srcdir); \
	xgettext --default-domain=$(PACKAGE) --add-comments --c++ --debug \
	  --join-existing -o po/$(PACKAGE).pot --keyword=__N \
	  `grep -r -l '__N(".*")' .`

# Specify what gets cleaned up on a 'make clean'
CLEANFILES = $(LOCALE_OUT)
